package com.heima.dome1;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Scanner;

public class RunYear {
    public static void main(String[] args) {
        //创建键盘输入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year=-1;
        //使用无限循环来处理
        while(true){
            try {
                String source = sc.nextLine();
                //对用户输入的数据进行转换
                year = Integer.parseInt(source);
                //结束循环
                break;
            } catch (NumberFormatException e) {
                //e.printStackTrace();
                System.out.println("输入一个数字格式的年份:");
            }
        }

//        fun1(year);
//        fun2(year);
    }

    private static void fun2(int year) {
        //二种可以根据一年总共有多少天来判断
        //创建一个日期对象,且将这个日期对象的月份更改为year这个年的12月31日
        LocalDateTime dateTime = LocalDateTime.of(year, 12, 31, 0, 0, 0);
        //直接使用日期对象 获取年中的总天数
        int day = dateTime.getDayOfYear();
        //使用总天数进行判断
        if (day == 366) {
            //总天数==366 闰年, 否则就是平年
            System.out.println(year+" 该年是闰年");
        }else{
            System.out.println(year+" 该年是平年");
        }
    }

    private static void fun1(int year) {
        //第一种可以根据二月共有多少天来判断
        //创建一个日期对象,且将这个日期对象的月份更改为year这个年的3月1日
        LocalDate date = LocalDate.of(year, 3, 1);
        //再使用plus系列的方法 将天数-1, 得到了二月份的最后一天
        LocalDate newDate = date.plusDays(-1);
        //使用日期对象的getXxx的方法获取月中的第几天
        int day = newDate.getDayOfMonth();
        //判断这个天数是否==29
        if (day == 29) {
            //如果是29就输出闰年 否则就是平年
            System.out.println(year+" 该年是闰年");
        }else{
            System.out.println(year+" 该年是平年");
        }
    }

}
